1. Field of the Invention
The present invention relates to a method, system, and program for remotely diagnosing operating problems of a computer system running an operating system or application program. Particularly, the present invention relates to a method, system, and program for remotely diagnosing operating problems of a computer system running a database application program.
2. Description of the Related Art
Assisting software customers troubleshoot problems occurring in the operation of computer programs and hardware is an unfortunate but inevitable task that must be supported by computer software and hardware companies. There are many factors which can make resolving such computer problems more difficult. For example, because the user computer with the problem is remotely located from the support technician, it is often difficult to accurately diagnose and resolve computer problems; often an unskilled user must be blindly talked through arcane procedures by the support technician to diagnose and resolve the problem. Typically, this process can be very time-consuming and may yield an inaccurate diagnosis. At the same time, it would not be cost effective to send a technician to the user computer in most situations. The difficulty of remotely troubleshooting computer problems is further compounded by the variety of software and hardware which may exist in a user system; the support system must be prepared to deal with unique hardware and software configurations for each user.
A known technique for performing remote diagnostics of computer problems involves a user granting remote user access to a support person. In that manner, the remote support technician may enter the supported computer system and directly perform diagnostics himself. However, from a user perspective, this approach poses a security risk; a person outside of the user organization will be granted high level security access and may access confidential information. Furthermore, in some cases, applying such a method may also violate U.S. or foreign security regulations, particularly if the support is provided from a service center in another country.
Another known technique for performing remote diagnostics of computer problems is for the support center to maintain a computer and software system that duplicates the user computer. In this case, the support center attempts to replicate the failure or other incident that is being investigated on the duplicated system so in order to identify the problem and develop a solution which can then be relayed to the user. However, this method can be difficult or impossible to implement in many cases due to the variety of computer hardware and software versions which may exist on the user system; it is virtually impossible to account for all permutations of hardware and software.
Other computer problems related to remote diagnostics of computer problems may involve specific common software applications, e.g. a networked database application, such as IBM's DB2. For example, troubleshooting a database application problem may require a support technician to review particular database table data in addition to application data. In this case, a user would be required to compile all the necessary information and communicate it to the remote support technician.
Conventional collection of database table data and application file data are performed as separate processes. A user must either manually create structured query language (SQL) command or use the database user interface to obtain database data in specific tables. Separately, another method must also be used to copy the required application data. With all the data now collected, yet another process is needed to combine the table and application data into a single archive, e.g. a zip file, so it can be communicated to the remote support technician. After the support technician receives the different sets of data (which come in different formats), he then must separately view the DB and application data in order to interpret them.
The process of collecting specific database table data, with different criteria each time, as well as other application data, can be very tedious, requiring a user to execute and manipulate multiple applications each time. Furthermore, viewing the database data typically requires a database program installed on the support technician's system so that table column definitions can be displayed along with the data. This usually requires that the definitions are available when the database data is retrieved. Finally, viewing of both the database data and the application data also involves separate processes for each data type, which makes analysis of both more tedious and time consuming. Some processes have been developed to facilitate the collection of data objects as well as remote diagnostics.
U.S. Pat. No. 6,963,875, issued Nov. 8, 2005 to Moore et al., discloses a persistent archive of a collection of data objects comprising a self-describing, infrastructure-independent representation of a logical structure for the collection and a self-describing, infrastructure-independent representation of the data objects. The archive is persistent in that it may be instantiated at an indefinite point in time in the future regardless of the state of technology at that time. A knowledge-based persistent archive of a collection of data objects comprises the foregoing two elements but also a self-describing, infrastructure-independent representation of knowledge relevant to the collection. Another embodiment of a knowledge-based persistent archive comprises at least one representation of a collection or the data objects, at least one self-describing, infrastructure-independent, or executable specification of one or more transformations relevant to the collection, and at least one self-describing, infrastructure-independent, or executable specification of one or more rules relevant to the collection.
U.S. patent application No. 2004/0167906, published Aug. 26, 2004 by Smith et al., discloses a method and a tool to simplify the analysis and maintenance of program products installed on plural computers. Product version information is gathered from each of a plurality of computers of a similar type. This information is then reorganized into one or more groups each containing the information gathered from a plurality of the computers such that the computers within each group have installed thereon program products the versions of which are upgrade compatible. The information in each group is used to guide the process of maintaining and upgrading the program products installed on the computers whose product information is within that group.
U.S. patent application No. 2003/0225936, published Dec. 4, 2003 by Felske, discloses an article of manufacture, method, and system for automatically collecting, formatting, parsing, and transferring data from a distributed control system (DCS) to a diagnosis/analysis program. The article of manufacture embodies an application interface program (API) which, when executed, performs the steps of: automatically collecting, formatting, and parsing process alarms from each DCS node; automatically collecting, formatting, and parsing operator actions from each DCS node using an SQL call; and automatically collecting, formatting, and parsing system monitor messages from each DCS node using an SQL call. The data may be parsed according to the time collection limits between when the API was last run and the current time. In one embodiment, the DCS is Foxboro's I/A DCS®, and the collected data is transferred by FTP for transmission over a network, such as the Internet, to a remote diagnosis/analysis program such as Honeywell's Control Performance Solution™ including Loop Scout™.
However, there is still a need in the art for systems and methods for efficient remote diagnostics of computer problems. Particularly, there is still a need in the art for such systems and methods that allow flexible retrieval of any log files along with product-specific database tables. There is also a need for such systems and methods to allow viewing collected logs and database tables via a single interface in order to diagnose a computer problem. As detailed hereafter, these and other needs are met by embodiments of the present invention.